<?php
namespace app\api\controller\passenger;
use app\api\logic\Gps;
use app\api\model;

/**
 * @name【乘客订单接口】
 * @baseurl【passenger】
 * @file【passenger/Order.php】
 */
class Order extends Base
{
    /**
     * @name【获取司机位置】
     * @desc【获取司机位置】
     * @uri【getDriverGps】
     * @method【post】
     * @param【
     *  orderid $ int $ 0 $ 订单id $ 1
     * 】
     * @return【
     * code $ int $ number|1-1 $ 校验码0失败1成功#
     * msg $ string $  $ 错误信息 #
     * data $ json $$ 轨迹 $[{}]
     * 】
     */
    public function getDriverGps(){
        $oid   = input('orderid',0);
        $order = \app\api\model\Order::get($oid);
        $data['lat'] = $order->driver->lat;
        $data['lon'] = $order->driver->lon;
        return $this->retSucc($data);
    }

    /**
     * @name【获取订单轨迹】
     * @desc【获取订单轨迹】
     * @uri【getOrderTrack】
     * @method【post】
     * @param【
     * orderid $ int $ 0 $ 订单id $ 1 #
     * stime   $ datetime $ 2017-1-1 00:00:00 $ 开始时间 #
     * etime   $ datetime $ 2017-1-1 00:00:00 $ 结束时间
     * 】
     * @return【
     * code $ int $ number|1-1 $ 校验码0失败1成功#
     * msg $ string $  $ 错误信息 #
     * lon $ string $  $ 经度 #
     * lat $ string $  $ 纬度
     * 】
     */
    public function getOrderTrack(){
        $oid          = input('orderid',0);
        $order        = \app\api\model\Order::get($oid);
        $driver_id    = $order ? $order->driver_id : 0;
        $driverTime   = $order->ordergps ? $order->ordergps->driver_time : date('Y-m-d H:i:s');
        $stime        = input('stime',$driverTime);
        $etime        = input('etime',date('Y-m-d H:i:s'));
        $track        = (new Gps())->getTrack($driver_id,$stime,$etime);
        $data['data'] = $track[3];
        return $this->retSucc($data);
    }

    /**
     * @name【获取订单详情】
     * @desc【获取订单详情】
     * @uri【getOrderDetail】
     * @method【post】
     * @param【
     *  orderid $ int $ 0 $ 订单id $ 1 #
     * 】
     * @return【
     * code $ int $ number|1-1 $ 校验码0失败1成功#
     * msg $ string $  $ 错误信息 #
     * data $ json $ $ 订单详情
     * 】
     */
    public function getOrderDetail(){
        $this->auth();
        $oid                  = input('orderid',0);
        $order                = \app\api\model\Order::with('ordergps,orderfee,driver,passenger')->find($oid);
        $data['data']         = $order;
        return $this->retSucc($data);
    }

    /**
     * @name【订单费用】
     * @desc【订单费用】
     * @uri【getOrderFee】
     * @method【post】
     * @param【
     * ptoken $ string $ abcd $ 校验码 $ 1 #
     * orderid $ int $ 5 $订单id$ 1
     * 】
     * @return【
     * code $ int $ number|1-1 $ 校验码#
     * msg $ string $  $ 错误信息 #
     * data $ json $ $ 费用明细 $ {"start_fee":"9.00","travel_fee":"9.66","meter":"85.57","use_time":78,"time_fee":"0.00","low_time":0,"low_fee":"0.00","remote_meter":"0.00","remote_fee":"0.00","wait_time":4,"wait_fee":"0.00","driver_money":"110.13","toll":"0.00","park_fee":"0.00","other_fee":"0.00","high_fee":"100.00"}
     * 】
     */
    public function getOrderFee(){
        $this->auth();
        $oid         = input('orderid');
        $orderFee    = (new model\OrderFee())->getPassengerFee($oid);
        $data['data']= $orderFee;
        return $this->retSucc($data);
    }
}